The subject matter discussed in the background section should not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section should not be assumed to have been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also correspond to the claimed embodiments.
Communicating data over the Internet or other networks is handled via protocols. Several exist including, for example, TCP, UDP, RTP, etc.
The Transmission Control Protocol (TCP) is a protocol of the Internet Protocol Suite and one of two original components of the suite, complementing the Internet Protocol (IP), and, which is commonly referred to as TCP/IP representing both the TCP and IP protocols. The TCP protocol places a premium upon reliability and data integrity, and is used by major Internet applications such as World Wide Web browsers, email applications, remote administration, and file transfer, each of which depend upon accuracy of the data transfer operation. Conversely, applications which do not require reliable data transfers, may use the User Datagram Protocol (UDP), which provides a datagram service that emphasizes reduced latency over reliability, thus making data loss an acceptable operational characteristic in the pursuit of reduced latency.
Due to network congestion, traffic load balancing, or other unpredictable network behavior, packets can be lost, duplicated, or delivered out of order. The TCP protocol detects these problems, requests retransmission of lost data, and rearranges out-of-order data. Once the TCP receiver has reassembled the sequence of octets originally transmitted, it passes them to the application program. Thus, TCP abstracts the application's communication from the underlying networking details.
TCP is optimized for accurate delivery rather than timely delivery, and therefore, TCP sometimes incurs relatively long delays (in the order of seconds) while waiting for out-of-order messages or retransmissions of lost messages. It is not particularly suitable for real-time applications such as Voice over IP. For such applications, protocols like the Real-time Transport Protocol (RTP) running over the User Datagram Protocol (UDP) are customarily utilized.
The RTP protocol defines a standardized packet format for delivering audio and video over IP networks. RTP is used extensively in communication and entertainment systems that involve streaming media, such as telephony, video teleconference applications, television services and web-based push-to-talk features.
Unfortunately, the RTP protocol which is utilized by conventional applications for providing real-time or low-latency type streaming applications is wholly deficient to provide traversal mechanisms through varying network layers, traversal means for firewalls, and traversal means for crossing disparate network architectures, so as to establish a link between two remote computing devices, such as a client/server or peer-peer, etc., whereas such features are provided by the TCP protocol. Unfortunately, the TCP protocol is also unsatisfactory for real-time and low latency applications due to the unacceptable latency delay introduced through its use.
With other applications it may necessary to provide not just low latency communications but additionally ensure wholly lossless communication which, unfortunately, the TCP protocol is unable to provide. The TCP protocol can ensure lossless connections but its tendency to induce latency on the order of seconds is wholly unacceptable for applications also requiring low latency. Consider for example a desktop sharing application in which participants at different locations are speaking to each other via telephone and simultaneously sharing a presentation via a desktop sharing application which requires lossless connections. Latency on the data transport would cause the desktop sharing application to “lag” behind as it awaits missing packets if using the TCP protocol, in which case the participants viewing the shared desktop would be presented with a display that is out of synch with the spoken audio shared via telephone.
An improved data transport utilizing the mechanisms described herein could resolve such a problem. The present state of the art may therefore benefit from methods, systems, and apparatuses for implementing a streaming platform IO pump and regulator as described herein.